// 自定义Token中间件
// const jwt = require('jsonwebtoken');
const { RES_CODE } = require('../utils/contants')
const { verifyToken } = require('../utils/tokenUtils')
module.exports = async (req, res, next) => {
    /* 
  - 解决预检请求被后台的token校验的中间件拦截的问题
- 解决: token校验的中间件不要拦截预检查, 直接放行
  */
    if (req.method === 'OPTIONS') {
        next()
        return
    }
    // 得到请求头中的token
    const token = req.headers['token']
    // 验证token是否合法
    try {
        const userId = await verifyToken(token)
        // 如果合法，将用户id保存到请求对象中，便于后续使用
        req.userId = userId
        next()
    } catch (error) {
        res.statusCode = 401
        res.json({
            code: RES_CODE.NEED_LOGIN,
            msg: 'token非法或过期'
        })
    }
}
